home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Tools / mpp84 / P1.py < prev    next >
Encoding:
Text File  |  1991-12-18  |  12.6 KB  |  642 lines

  1. -- P1.py - MHS P1 definitions
  2.  
  3. -- @(#) $Header: /xtel/pp/pp-beta/Tools/mpp84/RCS/P1.py,v 6.0 1991/12/18 20:31:34 jpo Rel $
  4. --
  5. -- $Log: P1.py,v $
  6. -- Revision 6.0  1991/12/18  20:31:34  jpo
  7. -- Release 6.0
  8. --
  9. --
  10. --
  11.  
  12.  
  13.  
  14. P1 DEFINITIONS  ::=
  15.  
  16. %{
  17. #ifndef lint
  18. static char *rcsid = "$Header: /xtel/pp/pp-beta/Tools/mpp84/RCS/P1.py,v 6.0 1991/12/18 20:31:34 jpo Rel $";
  19. #endif  lint
  20.  
  21. void    parse_p2 ();
  22. %}
  23.  
  24. BEGIN
  25.  
  26. PRINTER print
  27.  
  28. -- P1 makes use of types defined in the following module:
  29. -- Sa: Recommendation S.a[14]
  30. -- T73: T.73, Section 5
  31.  
  32. MPDU ::=
  33.         CHOICE {
  34.             usermpdu
  35.                 [0] IMPLICIT UserMPDU,
  36.  
  37.             ServiceMPDU
  38.         }
  39.  
  40. ServiceMPDU ::=
  41.         CHOICE {
  42.             reportmpdu [1]
  43.                 IMPLICIT DeliveryReportMPDU,
  44.  
  45.             probempdu [2]
  46.                 IMPLICIT ProbeMPDU
  47.         }
  48.  
  49. UserMPDU ::=
  50.         SEQUENCE {
  51.             envelope
  52.                 UMPDUEnvelope,
  53.  
  54.             content
  55.                 UMPDUContent
  56.         }
  57.  
  58. UMPDUEnvelope ::=
  59.         SET {
  60.             mpduID
  61.                 MPDUIdentifier,
  62.  
  63.             originator
  64.                 ORName,
  65.  
  66.             encodedtypes
  67.                 EncodedInformationTypes
  68.                 OPTIONAL,
  69.  
  70.             contentype
  71.                 ContentType,
  72.  
  73.             uacontentID
  74.                 UAContentId OPTIONAL,
  75.  
  76.             priority
  77.                 Priority DEFAULT normal,
  78.  
  79.             permsgflag
  80.                 PerMessageFlag DEFAULT {},
  81.  
  82.             deferredDelivery[0]
  83.                 IMPLICIT Time
  84.                 OPTIONAL,
  85.  
  86.             perdomain [1]
  87.                 IMPLICIT SEQUENCE OF PerDomainBilateralInfo
  88.                 OPTIONAL,
  89.  
  90.             recipient [2]
  91.                 IMPLICIT SEQUENCE OF RecipientInfo,
  92.  
  93.             trace
  94.                 TraceInformation
  95.         }
  96.  
  97. UMPDUContent ::=
  98.         OCTETSTRING
  99.         %{ parse_p2 ($$, $$_len); %}
  100.  
  101.  
  102. -- time
  103.  
  104. Time ::=
  105.         UniversalTime
  106.  
  107.  
  108. -- various envelope information
  109.  
  110. MPDUIdentifier ::=
  111.         [APPLICATION 4] IMPLICIT SEQUENCE {
  112.             globalid
  113.                 GlobalDomainIdentifier,
  114.                 IA5String
  115.         }
  116.  
  117. ContentType ::=
  118.         [APPLICATION 6]
  119.                 IMPLICIT INTEGER {
  120.                         p2(2)
  121.                 }
  122.  
  123. UAContentId ::=
  124.         [APPLICATION 10]
  125.             IMPLICIT PrintableString
  126.  
  127. Priority ::=
  128.         [APPLICATION 7]
  129.                 IMPLICIT INTEGER {
  130.                         normal(0),
  131.                         nonUrgent(1),
  132.                         urgent(2)
  133.                 }
  134.  
  135. PerMessageFlag ::=
  136.         [APPLICATION 8]
  137.             IMPLICIT BITSTRING {
  138.                 discloseRecipients(0),
  139.                 conversionProhibited(1),
  140.                 alternateRecipientAllowed(2),
  141.                 contentReturnRequest(3)
  142.             }
  143.  
  144. -- per-domain bilateral information
  145.  
  146. PerDomainBilateralInfo ::=
  147.         SEQUENCE {
  148.             country
  149.                 CountryName,
  150.             admd
  151.                 AdministrationDomainName,
  152.             bilateralinfo
  153.                 BilateralInfo
  154.         }
  155.  
  156. BilateralInfo ::=
  157.         ANY
  158.  
  159. -- recipient information
  160.  
  161. RecipientInfo ::=
  162.         SET {
  163.             recipname
  164.                 ORName,
  165.  
  166.             extensionid [0]
  167.                 IMPLICIT ExtensionIdentifier,
  168.  
  169.             perecipflag [1]
  170.                 IMPLICIT PerRecipientFlag,
  171.  
  172.             explicitconversion [2]
  173.                 IMPLICIT ExplicitConversion DEFAULT {}
  174.  
  175.         }
  176.  
  177. ExtensionIdentifier ::=
  178.         INTEGER
  179.  
  180. PerRecipientFlag ::=
  181.         BITSTRING -- See Figure 23/X.411
  182.  
  183. ExplicitConversion ::=
  184.         INTEGER {
  185.             iA5TextTeletex(0),
  186.             teletexTelex(1)
  187.         }
  188.  
  189.  
  190. -- trace information
  191.  
  192. TraceInformation ::=
  193.         [APPLICATION 9]
  194.             IMPLICIT SEQUENCE OF SEQUENCE {
  195.                 domainid
  196.                     GlobalDomainIdentifier,
  197.  
  198.                 domainsupplied
  199.                     DomainSuppliedInfo
  200.             }
  201.  
  202. DomainSuppliedInfo ::=
  203.         SET {
  204.             arrival [0]
  205.                 IMPLICIT Time,
  206.  
  207.             deferred [1]
  208.                 IMPLICIT Time
  209.                 OPTIONAL,
  210.  
  211.             action [2]
  212.                 IMPLICIT INTEGER {
  213.                     relayed(0),
  214.  
  215.                     rerouted(1)
  216.                 },
  217.  
  218.             encodedtypes
  219.                 EncodedInformationTypes
  220.                 OPTIONAL,
  221.  
  222.             previous
  223.                 GlobalDomainIdentifier OPTIONAL
  224.         }
  225.  
  226.  
  227. -- global domain identifier
  228.  
  229. GlobalDomainIdentifier ::=
  230.         [APPLICATION 3]
  231.             IMPLICIT SEQUENCE {
  232.                 country
  233.                         CountryName,
  234.                 admd
  235.                         AdministrationDomainName,
  236.                 prmd
  237.                         PrivateDomainIdentifier OPTIONAL
  238.             }
  239.  
  240. CountryName ::=
  241.         [APPLICATION 1]
  242.             CHOICE {
  243.                 NumericString,
  244.                 PrintableString
  245.             }
  246.  
  247. AdministrationDomainName ::=
  248.         [APPLICATION 2]
  249.             CHOICE {
  250.                 NumericString,
  251.                 PrintableString
  252.             }
  253.  
  254. PrivateDomainIdentifier ::=
  255.         CHOICE {
  256.             NumericString,
  257.             PrintableString
  258.         }
  259.  
  260.  
  261. -- O/R name
  262.  
  263. ORName ::=
  264.         [APPLICATION 0]
  265.             IMPLICIT SEQUENCE {
  266.                 standard
  267.                     StandardAttributeList,
  268.  
  269.                 domaindefined
  270.                     DomainDefinedAttributeList
  271.                     OPTIONAL
  272.             }
  273.  
  274. StandardAttributeList ::=
  275.         SEQUENCE {
  276.             country
  277.                 CountryName OPTIONAL,
  278.  
  279.             admd
  280.                 AdministrationDomainName OPTIONAL,
  281.  
  282.             x121 [0]
  283.                 IMPLICIT X121Address OPTIONAL,
  284.  
  285.             terminalID [1]
  286.                 IMPLICIT TerminalID OPTIONAL,
  287.  
  288.             prmd [2]
  289.                 PrivateDomainName OPTIONAL,
  290.  
  291.             org [3]
  292.                 IMPLICIT OrganizationName OPTIONAL,
  293.  
  294.             uaID [4]
  295.                 IMPLICIT UniqueUAIdentifier OPTIONAL,
  296.  
  297.             pname [5]
  298.                 IMPLICIT PersonalName
  299.                 OPTIONAL,
  300.  
  301.             orgUnit [6]
  302.                 IMPLICIT SEQUENCE OF OrganizationalUnit OPTIONAL
  303.         }
  304.  
  305. DomainDefinedAttributeList ::=
  306.         SEQUENCE OF DomainDefinedAttribute
  307.  
  308. DomainDefinedAttribute ::=
  309.         SEQUENCE {
  310.             type
  311.                 PrintableString,
  312.  
  313.             value
  314.                 PrintableString
  315.         }
  316.  
  317. X121Address ::=
  318.         NumericString
  319.  
  320. TerminalID ::=
  321.         PrintableString
  322.  
  323. OrganizationName ::=
  324.         PrintableString
  325.  
  326. UniqueUAIdentifier ::=
  327.         NumericString
  328.  
  329. PersonalName ::=
  330.         SET {
  331.             surName [0]
  332.                 IMPLICIT PrintableString,
  333.  
  334.             givenName [1]
  335.                 IMPLICIT PrintableString
  336.                 OPTIONAL,
  337.  
  338.             initials [2]
  339.                 IMPLICIT PrintableString
  340.                 OPTIONAL,
  341.  
  342.             generalQualifier [3]
  343.                 IMPLICIT PrintableString
  344.                 OPTIONAL
  345.     }
  346.  
  347. OrganizationalUnit ::=
  348.         PrintableString
  349.  
  350. PrivateDomainName ::=
  351.         CHOICE {
  352.             NumericString,
  353.             PrintableString
  354.         }
  355.  
  356.  
  357. -- encoded information types
  358.  
  359. EncodedInformationTypes ::=
  360.         [APPLICATION 5] IMPLICIT SET {
  361.             bitstring [0]
  362.                 IMPLICIT BITSTRING {
  363.                     undefined(0),
  364.                     tLX(1),
  365.                     iA5Text(2),
  366.                     g3Fax(3),
  367.                     tIF0(4),
  368.                     tTX(5),
  369.                     videotex(6),
  370.                     voice(7),
  371.                     sFD(8),
  372.                     tIF1(9)
  373.                 },
  374.  
  375.             [1]
  376.                 IMPLICIT G3NonBasicParams
  377.                 OPTIONAL,
  378.  
  379.             [2]
  380.                 IMPLICIT TeletexNonBasicParams
  381.                 OPTIONAL,
  382.  
  383.             [3]
  384.                 IMPLICIT PresentationCapabilities
  385.                 OPTIONAL
  386.  
  387.         -- other non-basic parameters are for further study
  388.         }
  389.  
  390. G3NonBasicParams ::=
  391.         BITSTRING {
  392.             twoDimensional(8),
  393.             fineResolution(9),
  394.             unlimitedLength(20),
  395.             b4Length(21),
  396.             a3Width(22),
  397.             b4Width(23),
  398.             uncompressed(30)
  399.         }
  400.  
  401. TeletexNonBasicParams ::=
  402.         SET {
  403.             graphicCharacterSets[0]
  404.                 IMPLICIT T61String OPTIONAL,
  405.  
  406.             controlCharacterSets[1]
  407.                 IMPLICIT T61String OPTIONAL,
  408.  
  409.             pageFormats[2]
  410.                 IMPLICIT OCTETSTRING OPTIONAL,
  411.  
  412.             miscTerminalCapabilities[3]
  413.                 IMPLICIT T61String OPTIONAL,
  414.  
  415.             privateUse[4]
  416.                 IMPLICIT OCTETSTRING OPTIONAL
  417.         }
  418.  
  419. PresentationCapabilities ::=
  420.         T73.PresentationCapabilities
  421.  
  422.  
  423. -- Delivery Report MPDU
  424.  
  425. DeliveryReportMPDU ::=
  426.         SEQUENCE {
  427.             envelope
  428.                 DeliveryReportEnvelope,
  429.  
  430.             content
  431.                 DeliveryReportContent
  432.         }
  433.  
  434. DeliveryReportEnvelope ::=
  435.         SET {
  436.             report
  437.                 MPDUIdentifier,
  438.  
  439.             originator
  440.                 ORName,
  441.  
  442.                 TraceInformation
  443.         }
  444.  
  445. DeliveryReportContent ::=
  446.         SET {
  447.             original
  448.                 MPDUIdentifier,
  449.  
  450.             intermediate
  451.                 TraceInformation OPTIONAL,
  452.  
  453.             uacontentID
  454.                 UAContentId OPTIONAL,
  455.  
  456.             reprecip [0]
  457.                 IMPLICIT SEQUENCE OF ReportedRecipientInfo,
  458.  
  459.             returned [1]
  460.                 IMPLICIT UMPDUContent OPTIONAL,
  461.  
  462.             billingInformation [2]
  463.                 ANY
  464.                 OPTIONAL
  465.         }
  466.  
  467. ReportedRecipientInfo ::=
  468.         SET {
  469.             recipient[0]
  470.                 IMPLICIT ORName,
  471.  
  472.             extensionID [1]
  473.                 IMPLICIT ExtensionIdentifier,
  474.  
  475.             perecipflag [2]
  476.                 IMPLICIT PerRecipientFlag,
  477.  
  478.             lastrace [3]
  479.                 IMPLICIT LastTraceInformation,
  480.  
  481.             intendedRecipient[4]
  482.                 IMPLICIT ORName
  483.                 OPTIONAL,
  484.  
  485.             additional [5]
  486.                 IMPLICIT SupplementaryInformation OPTIONAL
  487.         }
  488.  
  489.  
  490. -- last trace information
  491.  
  492. LastTraceInformation ::=
  493.         SET {
  494.             arrival [0]
  495.                 IMPLICIT Time,
  496.  
  497.             encodedtypes
  498.                 EncodedInformationTypes
  499.                 OPTIONAL,
  500.  
  501.             report [1]
  502.                 Report
  503.         }
  504.  
  505. Report ::=
  506.         CHOICE {
  507.             delivered [0]
  508.                 IMPLICIT DeliveredInfo,
  509.  
  510.             nondelivered [1]
  511.                 IMPLICIT NonDeliveredInfo
  512.         }
  513.  
  514. DeliveredInfo ::=
  515.         SET {
  516.             delivery [0]
  517.                 IMPLICIT Time,
  518.  
  519.             typeOfUA [1]
  520.                 IMPLICIT INTEGER {
  521.                     public(0),
  522.                     private(1)
  523.                 } DEFAULT public
  524.         }
  525.  
  526. NonDeliveredInfo::=
  527.         SET {
  528.             reason [0]
  529.                 IMPLICIT ReasonCode,
  530.  
  531.             diagnostic [1]
  532.                 IMPLICIT DiagnosticCode OPTIONAL
  533.         }
  534.  
  535. ReasonCode ::=
  536.         INTEGER {
  537.             transferFailure(0),
  538.             unableToTransfer(1),
  539.             conversionNotPerformed(2)
  540.         }
  541.  
  542. DiagnosticCode  ::=
  543.         INTEGER {
  544.             unrecognizedORName(0),
  545.  
  546.             ambiguousORName(1),
  547.  
  548.             mtaCongestion(2),
  549.  
  550.             loopDetected(3),
  551.  
  552.             uaUnavailable(4),
  553.  
  554.             maximumTimeExpired(5),
  555.  
  556.             encodedInformationTypesUnsupported(6),
  557.  
  558.             contentTooLong(7),
  559.  
  560.             conversionImpractical(8),
  561.  
  562.             conversionProhibited(9),
  563.  
  564.             implicitConversionNotResgistered(10),
  565.  
  566.             invalidParameters(11)
  567.         }
  568.  
  569.  
  570. -- supplementary information
  571.  
  572. SupplementaryInformation ::=
  573.         PrintableString -- length limited and for further study
  574.  
  575.  
  576. -- Probe MPDU
  577.  
  578. ProbeMPDU ::=
  579.         ProbeEnvelope
  580.  
  581. ProbeEnvelope ::=
  582.         SET {
  583.             probeid
  584.                 MPDUIdentifier,
  585.  
  586.             originator
  587.                 ORName,
  588.  
  589.                 ContentType,
  590.  
  591.                 UAContentId OPTIONAL,
  592.  
  593.             encodedtypes
  594.                 EncodedInformationTypes
  595.                 OPTIONAL,
  596.  
  597.                 TraceInformation,
  598.  
  599.                 PerMessageFlag DEFAULT {},
  600.  
  601.             contentLength[0]
  602.                 IMPLICIT INTEGER
  603.                 OPTIONAL,
  604.  
  605.             [1]
  606.                 IMPLICIT SEQUENCE OF PerDomainBilateralInfo
  607.                 OPTIONAL,
  608.  
  609.             [2]
  610.                 IMPLICIT SEQUENCE OF RecipientInfo
  611. }
  612.  
  613. END
  614.  
  615. %{
  616.  
  617. void    adios ();
  618.  
  619.  
  620. void    parse_p2 (octstr, len)
  621. char    *octstr;
  622. int     len;
  623. {
  624.     PS      ps;
  625.     PE      pe;
  626.  
  627.     if ((ps = ps_alloc (str_open)) == NULLPS)
  628.         adios (NULLCP, "ps_alloc");
  629.     if (str_setup (ps, octstr, len, 0) == NOTOK)
  630.         adios (NULLCP, "str_setup (%s)", ps_error (ps -> ps_errno));
  631.  
  632.     if ((pe = ps2pe (ps)) == NULLPE)
  633.         adios (NULLCP, "ps2pe (%s)", ps_error (ps -> ps_errno));
  634.  
  635.     (void) print_P2_UAPDU (pe, 1, NULLIP, NULLVP, NullParm);
  636.  
  637.     pe_free (pe);
  638.     ps_free (ps);
  639. }
  640.  
  641. %}
  642.